package com.model.auto;

import com.baomidou.mybatisplus.annotation.FieldStrategy;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;

import java.io.Serializable;
import java.time.LocalDate;
import java.time.LocalDateTime;

/**
 * <p>
 * 
 * </p>
 *
 * @author astupidcoder
 * @since 2022-09-14
 */
@Data
public class SysUser implements Serializable {

    private static final long serialVersionUID = 1L;

    /**
     * 主键id
     */
    @TableId(value = "user_id", type = IdType.AUTO)
    private Long userId;

    /**
     * 用户名
     */
    private String username;

    /**
     * 用户姓名
     */
    private String nickName;

    /**
     * 密码
     */
    private String password;

    /**
     * 手机号码
     */
    private String phone;

    /**
     * 用户类型1:超级管理员2:管理员3:专家4:体验专家5:会员,6:体验会员,7:普通用户
     */
    private Integer userType;
    /**
     * 身份类别：1：会员卡2：体验卡3：内部专家4：外部客户5：试用客户
     */
    private Integer userLevel;
    /**
     * 科目类型1:理科2:文科
     */
    private Integer majorType;

    /**
     * 高考年份
     */
    private String year;

    /**
     * 微信授权用户唯一标识
     */
    private String openid;

    /**
     * 位次
     */
    private Integer precedence;

    /**
     * 分数
     */
    private Integer score;

    /**
     * 绑定卡号
     */
    private String cardCode;

    /**
     * 是否正常1:正常0:禁用
     */
    private Integer status;

    /**
     * 系统
     */
    private Integer system;

    /**
     * 就读学校
     */
    private String school;

    /**
     * 删除标识0正常1删除
     */
    private Integer enabled;

    private Long createBy;

    private String createName;

    @JsonFormat(pattern="yyyy-MM-dd HH:mm:ss",timezone="GMT+8")
    private LocalDateTime createDate;

    private Long updateBy;

    private String updateName;

    @JsonFormat(pattern="yyyy-MM-dd HH:mm:ss",timezone="GMT+8")
    private LocalDateTime updateDate;

    /**
     * 运营类型：1：正式2：试用3：运营
     */
    private Integer operateType;
    /**
     * 到期日期
     */
    private LocalDate expirationDate;

    private String remarks;
    /**
     * 再选科目1
     */
    @TableField(exist = false)
    private String subject1;

    /**
     * 再选科目2
     */
    @TableField(exist = false)
    private String subject2;

    /**
     * 学生id
     */
    @TableField(exist = false)
    private Long stuId;

    /**
     * 是否禁用 “院校查询”、“定位专业”、“方案设计”模块
     */
    @TableField(exist = false)
    private Boolean disableFunction;

    /**
     * 注册验证码
     */
    @TableField(exist = false)
    private String code;

    /**
     * 注册卡号密码
     */
    @TableField(exist = false)
    private String codepwd;
}
